Console based leaderboard rendering

ABSTRACT

Leaderboard information for games can be assembled by a console service and displayed to a user through a console. The leaderboard information can be assembled based on a list of users associated with the user, for example a friends list. Upon selection of a game, a leaderboard service can automatically access the list of users and game records for the list of users based on the game. The leaderboard service then assembles the leaderboard information and transmits the leaderboard information to the console. The leaderboard information can then be selectively displayed to the user.

BACKGROUND

Historically, gaming consoles have been dedicated to devices that connect to a monitor and allow a user to play a game stored on a game cartridge or disc that is inserted into the gaming console. Thus, games available to a user were provided on gaming modules or optical discs that the user had to purchase and bring home. When a user wanted to play a game, the user had to insert the module or disc into the gaming console. The game would typically automatically start when it was inserted into the console. When the user desired to play a different game, the existing game had to be removed from the gaming console and the new game had to be inserted into the gaming console.

Traditionally, gaming consoles had also been isolated from other devices other than a television monitor. As such, they were not viewed as devices that could be networked. This situation changed with the introduction of the Microsoft XBox gaming console which provided network connectivity for the gaming console. To take advantage of this network connectivity, Microsoft introduced a gaming disc known as Microsoft Arcade which was able to connect to a server through the internet when the gaming console was connected to the internet. The server site that the Arcade disc could reach was dedicated to XBox consoles that were executing the Arcade application stored on the Arcade disc. As such, other devices could not reach this server site, and further, XBox consoles that did not have the Arcade gaming disc running, could not reach the server site.

From the server site, the Arcade gaming disc was able to enumerate full version games which were stored on the server and that could be downloaded to the user's hard disc drive on the XBox console. The list of games available on the server were displayed to the user. Within a user interface on the console, a user could select games that have been downloaded to play. While these games display information regarding the user and statistics related to the game, other information relative to other users operating other consoles across a network was limited.

The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.

SUMMARY

Leaderboard information for games can be assembled by a console service and displayed to a user through a console. The leaderboard information can be assembled based on a list of users associated with the user, for example a friends list. Upon selection of a game, a leaderboard service can automatically access the list of users and game records for the list of users based on the game. The leaderboard service then assembles the leaderboard information and transmits the leaderboard information to the console. The leaderboard information can then be selectively displayed to the user.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an isometric view of an exemplary gaming and media system.

FIG. 2 is an exemplary functional block diagram of components of the gaming and media system shown in FIG. 1.

FIG. 3 is a block diagram of an exemplary operating environment for rendering leaderboard information.

FIG. 4 is a flow diagram of a method for rendering leaderboard information.

FIG. 5 is an exemplary user interface for selecting a game.

FIG. 6 is an exemplary user interface of a game menu.

FIG. 7 is an exemplary user interface of a leaderboard.

DETAILED DESCRIPTION

FIG. 1 shows an exemplary gaming and media system 100. The following discussion of FIG. 1 is intended to provide a brief, general description of a suitable environment in which concepts presented herein may be implemented. As shown in FIG. 1, gaming and media system 100 includes a game and media console (hereinafter “console”) 102. In general, console 102 is one type of computing system, as will be further described below. Console 102 is configured to accommodate one or more wireless controllers, as represented by controllers 104(1) and 104(2). Console 102 is equipped with an internal hard disk drive (not shown) and a portable media drive 106 that supports various forms of portable storage media, as represented by optical storage disc 108. Examples of suitable portable storage media include DVD, CD-ROM, game discs, and so forth. Console 102 also includes two memory unit card receptacles 125(1) and 125(2), for receiving removable flash-type memory units 140. A command button 135 on console 102 enables and disables wireless peripheral support.

As depicted in FIG. 1, console 102 also includes an optical port 130 for communicating wirelessly with one or more devices and two USB (Universal Serial Bus) ports 110(1) and 110(2) to support a wired connection for additional controllers, or other peripherals. In some implementations, the number and arrangement of additional ports may be modified. A power button 112 and an eject button 114 are also positioned on the front face of game console 102. Power button 112 is selected to apply power to the game console, and can also provide access to other features and controls, and eject button 114 alternately opens and closes the tray of a portable media drive 106 to enable insertion and extraction of a storage disc 108.

Console 102 connects to a television or other display (not shown) via A/V interfacing cables 120. In one implementation, console 102 is equipped with a dedicated A/V port (not shown) configured for content-secured digital communication using A/V cables 120 (e.g., A/V cables suitable for coupling to a High Definition Multimedia Interface “HDMI” port on a high definition monitor 150 or other display device). A power cable 122 provides power to the game console. Console 102 may be further configured with broadband capabilities, as represented by a cable or modem connector 124 to facilitate access to a network, such as the Internet. The broadband capabilities can also be provided wirelessly, through a broadband network such as a wireless fidelity (Wi-Fi) network.

Each controller 104 is coupled to console 102 via a wired or wireless interface. In the illustrated implementation, the controllers are USB-compatible and are coupled to console 102 via a wireless or USB port 110. Console 102 may be equipped with any of a wide variety of user interaction mechanisms. In an example illustrated in FIG. 1, each controller 104 is equipped with two thumbsticks 132(1) and 132(2), a D-pad 134, buttons 136, and two triggers 138. These controllers are merely representative, and other known gaming controllers may be substituted for, or added to, those shown in FIG. 1.

In one implementation (not shown), a memory unit (MU) 140 may also be inserted into console 100 to provide additional and portable storage. Portable MUs enable users to store game parameters for use when playing on other consoles. In this implementation, each controller is configured to accommodate two MUs 140, although more or less than two MUs may also be employed.

Gaming and media system 100 is generally configured for playing games stored on a memory medium, as well as for downloading and playing games, and reproducing pre-recorded music and videos, from both electronic and hard media sources. With the different storage offerings, titles can be played from the hard disk drive, from optical disk media (e.g., 108), from an online source, or from MU 140. A sample of the types of media that gaming and media system 100 is capable of playing include:

Game titles played from CD and DVD discs, from the hard disk drive, or from an online source.

Digital music played from a CD in portable media drive 106, from a file on the hard disk drive (e.g., music in the Windows Media Audio (WMA) format), or from online streaming sources.

Digital audio/video played from a DVD disc in portable media drive 106, from a file on the hard disk drive (e.g., Active Streaming Format), or from online streaming sources.

During operation, console 102 is configured to receive input from controllers 104 and display information on display 150. For example, console 102 can display a user interface on display 150 to allow a user to select a game using controller 104 and display leaderboard information as discussed below.

FIG. 2 is a functional block diagram of gaming and media system 100 and shows functional components of gaming and media system 100 in more detail. Console 102 has a central processing unit (CPU) 200, and a memory controller 202 that facilitates processor access to various types of memory, including a flash Read Only Memory (ROM) 204, a Random Access Memory (RAM) 206, a hard disk drive 208, and portable media drive 106. In one implementation, CPU 200 includes a level 1 cache 210, and a level 2 cache 212 to temporarily store data and hence reduce the number of memory access cycles made to the hard drive 208, thereby improving processing speed and throughput.

CPU 200, memory controller 202, and various memory devices are interconnected via one or more buses (not shown). The details of the bus that is used in this implementation are not particularly relevant to understanding the subject matter of interest being discussed herein. However, it will be understood that such a bus might include one or more of serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus, using any of a variety of bus architectures. By way of example, such architectures can include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus also known as a Mezzanine bus.

In one implementation, CPU 200, memory controller 202, ROM 204, and RAM 206 are integrated onto a common module 214. In this implementation, RON 204 is configured as a flash RON that is connected to memory controller 202 via a Peripheral Component Interconnect (PCI) bus and a ROM bus (neither of which are shown). RAM 206 is configured as multiple Double Data Rate Synchronous Dynamic RAM (DDR SDRAM) modules that are independently controlled by memory controller 202 via separate buses (not shown) Hard disk drive 208 and portable media drive 106 are shown connected to the memory controller via the PCI bus and an AT Attachment (ATA) bus 216. However, in other implementations, dedicated data bus structures of different types can also be applied in the alternative.

A three-dimensional graphics processing unit 220 and a video encoder 222 form a video processing pipeline for high speed and high resolution (e.g., High Definition) graphics processing. Data are carried from graphics processing unit 220 to video encoder 222 via a digital video bus (not shown). An audio processing unit 224 and an audio codec (coder/decoder) 226 form a corresponding audio processing pipeline for multi-channel audio processing of various digital audio formats. Audio data are carried between audio processing unit 224 and audio codec 226 via a communication link (not shown) The video and audio processing pipelines output data to an A/V (audio/video) port 228 for transmission to a television or other display. In the illustrated implementation, video and audio processing components 220-228 are mounted on module 214.

FIG. 2 shows module 214 including a USB host controller 230 and a network interface 232. USB host controller 230 is shown in communication with CPU 200 and memory controller 202 via a bus (e.g., PCI bus) and serves as host for peripheral controllers 104(1)-104(4). Network interface 232 provides access to a network (e.g., Internet, home network, etc.) and may be any of a wide variety of various wire or wireless interface components including an Ethernet card, a modem, a wireless access card, a Bluetooth module, a cable modem, and the like.

In the implementation depicted in FIG. 2, console 102 includes a controller support subassembly 240 for supporting four controllers 104(1)-104(4). The controller support subassembly 240 includes any hardware and software components needed to support wired and wireless operation with an external control device, such as for example, a media and game controller. A front panel I/O subassembly 242 supports the multiple functionalities of power button 112, the eject button 114, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of console 102. Subassemblies 240 and 242 are in communication with module 214 via one or more cable assemblies 244. In other implementations, console 102 can include additional controller subassemblies. The illustrated implementation also shows an optical I/O interface 235 that is configured to send and receive signals that can be communicated to module 214.

MUs 140(1) and 140(2) are illustrated as being connectable to MU ports “A” 130(1) and “B” 130(2) respectively. Additional MUs (e.g., MUs 140(3)-140(6)) are illustrated as being connectable to controllers 104(1) and 104(3), i.e., two MUs for each controller. Controllers 104(2) and 104(4) can also be configured to receive MUs (not shown). Each MU 140 offers additional storage on which games, game parameters, and other data may be stored. In some implementations, the other data can include any of a digital game component, an executable gaming application, an instruction set for expanding a gaming application, and a media file. When inserted into console 102 or a controller, MU 140 can be accessed by memory controller 202.

A system power supply module 250 provides power to the components of gaming system 100. A fan 252 cools the circuitry within console 102.

An application 260 comprising machine instructions is stored on hard disk drive 208. When console 102 is powered on, various portions of application 260 are loaded into RAM 206, and/or caches 210 and 212, for execution on CPU 200, wherein application 260 is one such example. Various applications can be stored on hard disk drive 208 for execution on CPU 200.

Gaming and media system 100 may be operated as a standalone system by simply connecting the system to monitor 150 (FIG. 1), a television, a video projector, or other display device. In this standalone mode, gaming and media system 100 enables one or more players to play games, or enjoy digital media, e.g., by watching movies, or listening to music. However, with the integration of broadband connectivity made available through network interface 232, gaming and media system 100 may further be operated as a participant in a larger network gaming community, as discussed below in connection with FIG. 3.

FIG. 3 provides a block diagram of multiple consoles 300A-300N networked with a console service 302 having one or more servers 304 through a network 306. Under one embodiment, network 306 comprises the internet. Server(s) 304 include a communication component capable of receiving information from and transmitting information to consoles 300A-N and provide a collection of services that applications running on consoles 300A-N may invoke and utilize.

For example, consoles 300A-N may invoke user login service 308, which is used to authenticate a user on consoles 300A-N. During login, login service 308 obtains a Gamertag (a unique identifier associated with the user) and a password from the user as well as a console identifier that uniquely identifies the console that the user is using and a network path to the console. The Gamertag and password are authenticated by comparing them to user records 310 in a database 312, which may be located on the same server as user login service 308 or may be distributed on a different server or a collection of different servers. Once authenticated, user login service 308 stores the console identifier and the network path in user records 310 so that messages and information may be sent to the console.

User records 310 can include additional information about the user such as game records 314 and friends list 316. Game records 314 include information for a user identified by a Gamertag and can include statistics for a particular game, achievements acquired for a particular game and/or other game specific information as desired.

Friends list 316 includes an indication of friends of a user that are also connected to or otherwise have user account records with console service 302. Friends list 316 can be used to create a sense of community of users of console service 302. Users can select other users to be added to their friends list and view information about their friends such as game performance, current online status, friends list, etc. Friends list 316 can be used to assemble and display leaderboard information to a user such that the user can compare the user's score with users on friends list 316.

Leaderboard service 318 receives a request from a console to access game records 314 and friends list 316 such that leaderboard information for a game can be transmitted to the console. In one example, a game developer can specify one or more parameters that can be used by leaderboard service 318 in rendering leaderboard information. These parameters can include a type of information (e.g. a number, a rank, a rating, etc.), sorting information (e.g. ascending, descending), a column for which to access statistics in game records 314 and/or viewing information. If desired, leaderboard service 318 integrates a current user's scoring information when assembling leaderboard information.

User records 310 also include additional information about the user including games that have been downloaded by the user and licensing packages that have been issued for those downloaded games, including the permissions associated with each licensing package. Portions of user account records 310 can be stored on an individual console, in database 312 or on both. If an individual console retains game records 314 and/or friends list 316, this information can be provided to console service 302 through network 306. Additionally, the console has the ability to display information associated with game records 314 and/or friends list 316 without having a connection to console service 302.

Server(s) 304 also include message service 320 which permit one console, such as console 300A, to send a message to another console, such as console 300B. Such messages can include text messages, voice messages, video messages, and specialized in text messages known as invites, in which a user playing the game on one console invites a user on another console to play in the same game while using network 306 to pass gaming data between the two consoles so that the two users are playing from the same session of the game. Friends list 316 can also be used in conjunction with message service 320.

FIG. 4 is a flow diagram of a method 400 for displaying leaderboard information with regard to a particular game. At step 402, a particular game of a plurality of games is selected. In one example, this selection can be made by a user by operating controller 104 through a graphical user interface displayed on monitor 150 of FIG. 1. When a highlighted portion of the user interface indicates a particular game, that game can be identified as being selected. Thus, a user of the console can select from a list of games on a user interface instead of inserting a disk or other memory device into the console for game selection.

An indication of the selected game is provided at step 404. For example, this indication can be provided by a console (such as console 30A) to console service 302 of FIG. 3. If desired, the indication to console service 302 can be delayed for a specified period of time to prevent console service 302 from being overloaded with information requests and to prevent requests if a user is quickly scrolling through a menu of games. For example, the delay could be 1 second, 2 seconds or any suitable time period.

Once console service 302 receives the indication of the selected game, friends list 316 is accessed for the particular user that has selected the game. As discussed above, the friends list 316 can be stored locally on the console operated by the user and/or with console service 302. Leaderboard service 318 can be used to access the friends list 316. Given the users on the friends list, game records for the selected game are accessed at step 408 by leaderboard service 318. It is worth noting that game records for other users in the friends list can be stored in database 312 and/or on other consoles.

Game records that are accessed by leaderboard service 318 include the user's records of the user operating the console as well as the records in the user's associated friends list. At step 410, leaderboard information for the selected game is assembled by leaderboard service 318 based on the game records and the users on the friends list. In one example, assembly of the leaderboard information can include sorting so as to list the top user first in descending order based on a statistic for the game. Additionally, as discussed above, the statistic of a particular game can be set by a game developer to include any type of statistic for the selected game. Example statistics include scores, number of wins, levels completed, ranking, rating, etc.

At step 412, the leaderboard information is rendered, for example, being transmitted back to the console that originated the game selection. At step 414, the leaderboard information is selectively displayed. For example, the leaderboard information can be displayed individually as indicated in step 416 or the leaderboard information can be displayed in a partial or full list, as indicated at step 418. If leaderboard information is displayed individually, it can be displayed in a successive, continuous manner, for example by scrolling horizontally or vertically or by fading in/out. If information is to be displayed in a list, a pre-determined number of users on the list can be displayed, such as a top five list, top ten list, etc. The full or partial list can also be displayed continually by fading in/out and scrolling.

FIG. 5 is a block diagram of a graphical user interface for selectively displaying leaderboard information individually. User interface 500 includes a title portion 502, a games list 504, and a game-specific module 506. Games list 504 lists a plurality of games that a user can access and select. For example, a user may have access to games that have been downloaded to the user's console.

The user can select one of the games in game list 504, for example by using controller 104 of FIG. 1, in particular by scrolling through list 504 using thumbsticks 132 and/or D-pad 134. In the embodiment illustrated in FIG. 5, the user has scrolled to game 508, titled “Hexic HD”, which is shaded to emphasize an active portion for user interface 500. Game 508 includes an associated icon 510 and a title 512 that are displayed. Based on game 508, game-specific module 506 displays specific information with regard to game 508.

Game-specific module 506 includes a game title portion 514, a user score portion 516, a user achievement portion 518, and a leaderboard portion 520. Game title 514 lists the title of the game selected. User score portion 516 displays scores associated for the particular game 508 that has been selected for the current user of the console. In the embodiment illustrated, user score portion 516 includes a gamer score and a high score for game 508. Achievement portion 518 lists various achievements that the user has achieved while playing game 508.

Leaderboard portion 520 displays leaderboard information retrieved using method 400 of FIG. 4. In the embodiment illustrated, a friend's Gamertag 522, ranking 524, icon 526, label 528 and associated statistic 530 are displayed in leaderboard portion 520. Leaderboard portion 516 can change in order to display other individual friend's leaderboard information as desired. For example, the leaderboard information can fade in/out, scroll vertically, scroll horizontally, etc. Additionally, leaderboard portion 520 can display information for more than one friend on the leaderboard.

Gamertag 522 is an identifier of the particular friend being displayed in leaderboard portion 516 and icon 526 is an icon chosen by the friend. Rank 524 is a ranking in the friends list of the user. Label 528 shows the type of data used by the selected game 508 to rank players and can be any type of statistic such as high score (as illustrated), number of wins, achievements acquired, etc. Statistic 530 shows the statistic associated with label 528 for the user associated with gamer tag 522.

It should be noted that if the user scrolls down list 504 to select another game, method 400 can be repeated for the next game on list 504, which in this case is a game titled, “Bankshot Billiards”. For this game, game specific module 506 will be updated to include game specific information for “Bankshot Billiards”. In particular, title 514, achievements 518 and leaderboard portion 520 will all include information specific to “Bankshot Billiards”. Leaderboard portion 520 will be updated based on leaderboard information assembled using method 400 based on the “Bankshot Billiards” game, which may or may not include a different gamer tag 522, rank 524, icon 526, label 528 and/or statistic 530.

FIG. 6 is a graphical user interface 600 of a game menu. Users can display game menu 600 by selecting to enter a particular game menu from user interface 500. For example, buttons 136 can be used to select a particular game that is emphasized from interface 500 for which to enter a game menu. In this case, the user has selected to enter game menu 600 by selecting game 508. User interface 600 includes a title portion 602, an options list 604, and a game-specific module 606. Options list 604 lists several options that the user can select for the specific game listed in game title 602. The user can scroll through list 604 using thumbsticks 132 and/or D-pad 134, for example. Game menu 600 can emphasize an active portion of list 604 for selection by the user while the user scrolls through list 604.

Game-specific module 606 displays similar information to game-specific module 506 in user interface 500. Leaderboard information in game-specific module 606 can continue to present leaderboard information continuously similar to game-specific module 506, for example by fading in/out, scrolling horizontally, scrolling vertically, etc.

From game menu 600, a user is allowed to scroll through list 604 to select option 608, titled “View Friends Leaderboard.” Option 608 is shaded to emphasize selection by the user. When selected, this option will display a full list of leaderboard information provided during method 400 as illustrated in FIG. 7.

FIG. 7 illustrates a full leaderboard user interface 700. Interface 700 includes a title portion 702 and a gamer list 704. Gamer list 704 lists each of the friends of the user that are on the leaderboard for the particular game. In this case, the list 704 also lists the current player's information that was presented in game specific modules 506 and 606. The current player “Robby” is ranked #3. Additionally, list 704 shows a ranking, gamer icon, gamer tag, statistic type and statistic for each player, similar to friends leaderboard portion 520 of FIG. 5. Although list 704 lists ten players from the friend's list, any number of players can be displayed such as two, five or more. List 704 can also include the particular user operating the console.

Thus, through use of leaderboard service 318, a user can have an enhanced community experience by comparing his/her score to other friends in the community. Leaderboard service 318 can run automatically without the need for intervention by the user such that a user-friendly experience is provided for viewing leaderboard information.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. 

1. A method of distributing information across a network, comprising: receiving an indication from a gaming console connected to the network that includes a game title from a plurality of game titles; accessing a list of users identified as being associated with a user operating the gaming console; accessing game records given the game title and the list of users; and assembling a leaderboard list based on the game records and the list of users.
 2. The method of claim 1 and further comprising: receiving a second indication from the gaming console including a second game title from the plurality of game titles; accessing additional game records given the second game title and the list of users; and assembling a second leaderboard list based on the additional game records and the list of users.
 3. The method of claim 1 wherein the leaderboard list includes users in the network and a statistic for each user based on the game title.
 4. The method of claim 1 and further comprising: transmitting the leaderboard list to the gaming console.
 5. The method of claim 1 and further comprising: ranking the leaderboard list as a function of the game records.
 6. The method of claim 1 wherein accessing game records further comprises identifying a label for the game title and accessing statistics associated with the label.
 7. A console service for receiving and transmitting information to a plurality of gaming consoles in a network, comprising: user account records including information for a plurality of users in the network; game records including information for a plurality of games adapted to be played on the plurality of gaming consoles; a communication component adapted to receive an indication from a console identifying a game from the plurality of games; a leaderboard service adapted to assemble leaderboard information as a function of a list of users in the network associated with a user of the console and a statistic for each user based on the game.
 8. The console service of claim 7 wherein the leaderboard information includes an identifier, a statistic and a ranking for each user.
 9. The console services of claim 7 wherein the communication component is further adapted to transmit the leaderboard information to the console.
 10. The console services of claim 7 wherein the game records include a label for each game of the plurality of games indicative of a type of statistic used to rank users for the game.
 11. The console service of claim 7 wherein the leaderboard information includes the user, a ranking for the user and a statistic for the user.
 12. A gaming console adapted to operate in a network, comprising: an identification component identifying a particular user of the network; a communication component adapted to send information regarding a selected game title across the network to a console service and receive leaderboard information from the console service regarding a list of users associated with the particular user and statistics for users from the list of users for the game title; and a user interface module adapted to selectively display the leaderboard information.
 13. The gaming console of claim 12 wherein the user interface module is adapted to display the leaderboard information individually for each user in the list of users.
 14. The gaming console of claim 12 wherein the user interface module is adapted to display the leaderboard information by showing a plurality of users in the list of users.
 15. The gaming console of claim 14 wherein the user interface is adapted to display the plurality of users in a ranked list.
 16. The gaming console of claim 12 wherein the user interface module is adapted to display the leaderboard information continuously in a manner that includes one of fading and scrolling.
 17. The gaming console of claim 12 wherein the user interface is adapted to allow the user to select a particular game and the communication component is delayed in sending information regarding the selected game for a specified time period.
 18. The gaming console of claim 12 wherein the user interface is adapted to display the leaderboard information as a function of a rank, a gamer tag and a statistic.
 19. The gaming console of claim 18 wherein the user interface is further adapted to display a label associated with the statistic.
 20. The gaming console of claim 12 wherein the user interface is adapted to update leaderboard information displayed based on input provided by the particular user. 